package com.guomei.bean.curse;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class AddOrUpdateCoupon {
    /**
     * 优惠券ID
     */
    private Long id;

    /**
     * 优惠券名称
     */
    @NotBlank(message = "优惠券名称不能为空")
    @NotNull(message = "优惠券名称不能为空")
    private String couponName;

    /**
     * 适用课程ID, null表示全部课程
     */
    private Long courseId;

    /**
     * 类型(1-满减券,2-折扣券)
     */
    @NotNull(message = "优惠券类型不能为空")
    private Short couponType;

    /**
     * 优惠值(满减券为金额,折扣券为折扣比例)
     */
    @NotNull(message = "优惠券值不能为空")
    private BigDecimal discountValue;

    /**
     * 最低消费金额
     */
    @NotNull(message = "最低消费金额不能为空")
    private BigDecimal minPurchase;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

    /**
     * 总数量  默认无限
     */
    private Integer totalCount;

    /**
     * 已使用数量
     */
    private Integer usedCount;

    /**
     * 状态(0-禁用,1-启用)
     */
    private Short status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updatedTime;

    /**
     * 老师id
     */
    private Long teacherId;
}
